import { Statement, STATEMENT_KIND, STATEMENT_TAG } from './statement';

export class VirtualStatement extends Statement {
  $kind: STATEMENT_KIND.STANDARD_STATEMENT = STATEMENT_KIND.STANDARD_STATEMENT;
  $name: string;
  $datas: any[];
  $tag: STATEMENT_TAG.EXECUTABLE = STATEMENT_TAG.EXECUTABLE;
  static isVirtualStatement(object: any): object is VirtualStatement {
    return (
      Statement.isStatement(object) &&
      object.$kind === STATEMENT_KIND.STANDARD_STATEMENT
    );
  }

  constructor(kind: string, datas: any[]) {
    super();
    this.$name = kind;
    this.$datas = datas;
  }
}
